DataCenter Overview:Google Datacenter WSC
Updated:
WSC简介
今天把Google的《The Datacenter as a Computer》看了一遍,它介绍了谷歌的一种数据中心类型——Warehouse-scale computers(WSC)。
那么这种类型的数据中心跟传统的数据中心有什么区别呢?
传统的数据中心,通常是host大量的中小型应用,每个应用都运行在一个相对专用的硬件设施上。这些数据中心一般会给不同的公司或组织提供不同的软硬件。那么这些不同的软硬件之间一般也没什么共同点,也不会互相交换信息。
WSC这种类型的数据中心,作为一种服务,由Google呀,Amazon,Facebook等公司的在线服务部门提供。它跟传统的数据中心的区别: 它属于一个单独的组织,采用相对同质化的软硬件,并且共享一个相同的系统管理层。很多应用,中间层以及服务都是系统自带的。最重要的一点是,WSC运行少量的大应用(或网络服务), 公用资源管理基础设施架构可以做到部署灵活性。
现在的数据中心不再单纯是机器的集合。很多服务例如Gmail,Web搜索服务并不是运行在一个单台机器上或单个机架上,它们是运行在由百个甚至上千个服务器组成的集群上。因此,这里的大集群本身是一个单计算单元。这已经成为一个趋势,以后越来越多公司有能力也会有财力去构建这样的数据中心。
WSC架构简介
上图所示是Goole的WSC总结构图。 它由一系列的1U或刀片机通过一个本地以太网交换机挂载到一个机柜上。这些机柜级别的交换机,可以达到1-10Gbp的连接速度,有一些上层链路连接到一个或者多个集群级(数据中心级)的以太网交换机上。这些二级交换机可以扩展至几万个的单独服务器。
刀片式的服务器在刀片内有一个额外的一级网络集合,用于多个运行的刀片服务器通过PCIe等IO总线连接到一些网络刀片。
下图就是Google在2012年的WSC数据中心。
1. 存储
磁盘或内存设备是直接连接到每台单独的服务器上,由全球分布文件系统(例如Google的GFS, 有兴趣的童鞋自行google)或作为网络附加存储(Network Attached Storage (NAS))设备的一部分直接连接到集群级别的交换架构上。 应用NAS会是一个更加简单的部署方案因为它允许一部分的数据管理任务外包给NAS设备供应商。 让存储和计算节点分离也可以保证服务的质量因为NAS在存储服务器之外不运行计算任务。
相反的,给计算节点直接附加磁盘可以减少硬件成本(磁盘在现有的服务器机箱上使用),并且提高网络设备的使用率(每个服务器的网络接口可以被计算任务和文件系统之间动态共享)。
NAND闪存技术(Intel和Micron在2015年宣布了3D NAND闪存技术)让SSD有可能在WSC中广泛使用。虽然SSD上每个byte的存储成本比磁盘技术要高,但很多网络服务所需要的I/O传输率是传统磁盘系统达不到的。因此数据中心采用SSD代替磁盘驱动器成为了趋势。
2. 网络设备
为WSC数据中心选择网络设备,要考虑因素是速度,规模和成本。在我们讨论的系统内,有高达48个端口的1Gbps以太网网络交换机是商用组件,每台服务器连接到一个机柜上(包括交换端口,线,和服务器网卡)的成本少于$30/Gbps。因此一个机柜上的服务器的带宽是差不多的。但是,用于连接到WSC集群上的多端口交换机价格就不是一个数量级的了,每个端口的成本会比商用机柜交换机贵十倍不止。
因此,WSC上的网络设备通常由两种级别组成。如图1所示,每个机柜上商用的交换机都提供带宽二分之一的碎片用于机柜间通信,只有少量的上行链通信到更耗资源的集群级交换机。举个例子,一个有40台服务器的机柜,每个服务器有一个1-Gbps的端口,可能有4到8个1-Gbps的上行链路到集群级别的交换机,考虑到相应的超额申请因素,大约有10到5用于机柜间的通信。在这样一种网络中,开发者必须意识到相对稀缺的集群级带宽资源,并尽量开发本地的机柜级别网络。
或者,另一个方案是通过花更多的钱在内联设备上来解决集群级别网络通信的瓶颈。举个例子,无限带宽的内联器可以扩展至数千端口,但每个端口将花费500-2000美元。相应的,有一个网络供应商开始提供大规模的以太网设备,但买个服务器多花费数百美元。所以是要花钱在购买网络设备上,还是用同等的钱购买更多的服务器和存储是因情况而异的,没有标准答案。
3.存储层级
下图展示的是程序员视角的假定WSC存储层级。一个服务器由很多处理器插槽组成,每个插片有多核CPU和内部的多级缓存,本地共享和一级DRAM,一些直接附上去的磁盘或闪存固态存储(也就是上面说的NAND)。机柜内的DRAM和磁盘/闪存资源可以被以及机柜交换机获取到, 并且全部机柜的全部资源可以通过集群级别的交换机获取到。不同资源的相对平衡取决于目标应用的需求。特别是基于闪存的固态存储最近在加到WSC的存储架构中,并且在现实中被广泛使用。
4.量化延迟,带宽和容量
图4展示的是尝试将一个WSC的延迟,带宽和容量特性进行量化。我们假设一个系统有2400台服务器,每个服务器又16GB的DRAM和2TB的硬盘容量(在这里我们不采用闪存因为部署模式非常不同)。每个组由80台服务器组成,通过一个1-Gbps的网络连接到集群级别的交换机(超额申请系数为5)。网络延迟假设是一个TCP-IP传输网络,并且网络带宽的情况是,假设超售上行链路集合后的每个服务器是平等共享集群级别的可用带宽。
图表显示的是每个资源池的相对延迟,带宽和容量。举个例子,本地磁盘的可用带宽是200MB/s,而机柜外的磁盘只有25MB/s因为需要共享上行链路。另外一方面,集群的磁盘容量几乎是本地DRAM的一万多倍。
5.电源使用情况
能源的使用情况在WSC的设计中也特别重要,因为能源相关的成本成为这种类型系统的重要部分。下图显示了2007年,谷歌主要部门统计的某代WSC的主要能耗表,可以看出能源是怎么样被现代IT设备所使用的。